
let Vue


class Store {
    // 初始数据的
    constructor(options = {}) {
        // 这就是把用户传进来的数据挂到store实例里面去
        this.state = options.state
    }
}

const install = (_Vue) => {
    Vue = _Vue
    console.log('install');
    Vue.mixin({
        beforeCreate () {
            // 就是说我现在发现new Vue里面有配置store（即this.$options.store存在）
            // 我就把this.$options.store直接赋值给this.$sore，那我这个艮实例上就可以直接拿到store了
            if (this.$options && this.$options.store) {
                this.$store = this.$options.store
            } else { //说一下 为啥会有else 这是为了让你非根组件 在用store的时候不需要自己加一个store配置项
                // 所以，就把父组件的store继承下来就行，顺便说一下，也就是说根实例，不配置store根本就用不了
                this.$store = this.$parent && this.$parent.$store
            }
        },
    })
}

export default {
    install,
    Store
}